package org.travelfusion.xmlclient.ri.xobject.misc;

import java.io.Serializable;
import java.util.Date;

import com.google.gwt.user.client.rpc.IsSerializable;

/**
 * Used to represent the Meta Cache XML response for the command FindAlterntiveFlights.
 * 
 * @author Dogan Narinc (dogan.narinc@gmail.com)
 * 
 */
public class XFindAlternativeFlightsItem implements Serializable, IsSerializable {

  /** serialVersionUID. */
  private static final long serialVersionUID = 1L;

  public enum CodeType {
    CITY, AIRPORT
  }

  private String origin;
  private String originAirport;

  private String destination;
  private String destinationAirport;

  private double price;

  private Date timestamp;

  private XFindAlternativeFlightsLegDetails outwardLeg;
  private XFindAlternativeFlightsLegDetails returnLeg;

  /**
   * Returns the destination.
   * 
   * @return the destination.
   */
  public String getDestination() {
    return destination;
  }

  /**
   * Sets the destination.
   * 
   * @param destination the destination.
   */
  public void setDestination(String destination) {
    this.destination = destination;
  }

  /**
   * Returns the price.
   * 
   * @return the price.
   */
  public double getPrice() {
    return price;
  }

  /**
   * Sets the price.
   * 
   * @param price the price.
   */
  public void setPrice(double price) {
    this.price = price;
  }

  /**
   * Returns the origin.
   * 
   * @return the origin.
   */
  public String getOrigin() {
    return origin;
  }

  /**
   * Sets the origin.
   * 
   * @param origin the origin.
   */
  public void setOrigin(String origin) {
    this.origin = origin;
  }

  /**
   * Returns the timestamp.
   * 
   * @return the timestamp.
   */
  public Date getTimestamp() {
    return timestamp;
  }

  /**
   * Sets the timestamp.
   * 
   * @param timestamp the timestamp.
   */
  public void setTimestamp(Date timestamp) {
    this.timestamp = timestamp;
  }

  /**
   * @return the originAirport
   */
  public String getOriginAirport() {
    return originAirport;
  }

  /**
   * @param originAirport the originAirport to set
   */
  public void setOriginAirport(String originAirport) {
    this.originAirport = originAirport;
  }

  /**
   * @return the destinationAirport
   */
  public String getDestinationAirport() {
    return destinationAirport;
  }

  /**
   * @param destinationAirport the destinationAirport to set
   */
  public void setDestinationAirport(String destinationAirport) {
    this.destinationAirport = destinationAirport;
  }

  /**
   * @return the outwardLeg
   */
  public XFindAlternativeFlightsLegDetails getOutwardLeg() {
    return outwardLeg;
  }

  /**
   * @param outwardLeg the outwardLeg to set
   */
  public void setOutwardLeg(XFindAlternativeFlightsLegDetails outwardLeg) {
    this.outwardLeg = outwardLeg;
  }

  /**
   * @return the returnLeg
   */
  public XFindAlternativeFlightsLegDetails getReturnLeg() {
    return returnLeg;
  }

  /**
   * @param returnLeg the returnLeg to set
   */
  public void setReturnLeg(XFindAlternativeFlightsLegDetails returnLeg) {
    this.returnLeg = returnLeg;
  }
}
